# ModuleNotFoundError
import os, sys
sys.path.append(os.path.dirname(sys.path[0]))
# Import Parser Library
from Frames.testCaseParser import Parser
Parser().sortedDict()
# for content in Parser().testContentOrderedDict.keys():

# Import testContent.py
from Frames.testCaseContent import *

# Import testCasePreCondition.py，Parametrise is【testContent】
#   :return market, deal, type_
from Frames.testCasePreCondition import PreCondition


# Import testCaseStep.py，Parametrise is 【testContent】
#   :--》【menu, market, deal, type_, testFunc, testpointSuffix】
from Frames.testCaseStep import CaseStep

# Import testCaseResult，Parametrise is  【testContent】
from Frames.testCaseResult import CaseResult

# Import Excel Module，Writen into Data
from Tools.saveExcel import saveExcel

# Import LOG Module to Record
from Tools.tools import LOG, INIReader


def main():
    案例编号 = 0  # A1
    测试模块 = ''  # B1
    测试点 = ''  # C1
    测试内容 = ''  # D1
    场景描述 = ''  # E1
    前置条件 = ''  # F1
    操作步骤 = ''  # G1
    测试数据 = ''  # H1
    预期结果 = ''  # I1
    测试结果 = '通过'  # J1
    测试人员 = '何庭彦'  # K1
    备注 = ''  # L1

    合并_测试模块 = []
    合并_测试点 = []
    excel = saveExcel()
    # return menu, market, deal, type_, testFunc, testpointSuffix
    for content, value in Parser().testContentOrderedDict.items():
        案例编号 += 1
        合并_测试模块.append(案例编号+1)
        合并_测试点.append(案例编号+1)
        测试模块 = '港股通委托' if CaseResult(content).parserKeyword()[1] in ('深港通', '沪港通') else '新三板委托'
        测试点 = CaseResult(content).parserKeyword()[3]
        测试内容 = content
        前置条件 = PreCondition(content).preCondition()
        操作步骤 = CaseStep(content).executeStep()
        预期结果 = CaseResult(content).excptedResult(value)
        excel.writerow([案例编号, 测试模块, 测试点, 测试内容, 场景描述, 前置条件, 操作步骤, 测试数据, 预期结果, 测试结果, 测试人员, 备注])
        excel.format_border('A', 1, 'L', 案例编号+1)
        # 调整格式
        for i in [chr(x) for x in range(ord('A'), ord('L') + 1)]:
            if i == 'G':
                excel.left_top(i + str(案例编号 + 1))
            if i == 'F' or i == 'I':
                excel.left_center(i + str(案例编号 + 1))
            else:
                excel.center_center(i + str(案例编号 + 1))

        if 案例编号 >=2:

            if 测试模块 == excel.getValue('B' + str(案例编号)):
                合并_测试模块.append(案例编号+1)
            else:
                excel.intoOne_B(合并_测试模块[0], 合并_测试模块[-1])
                合并_测试模块.clear()

            if 测试点 == excel.getValue('C' + str(案例编号)):
                合并_测试点.append(案例编号+1)
            else:
                excel.intoOne_C(合并_测试点[0], 合并_测试点[-1])
                合并_测试点.clear()

        LOG().DEBUG(f'{str(案例编号)} [{测试内容}]正在写入···')
        print(f'{str(案例编号)} [{测试内容}]正在写入···')

    del excel
    LOG().DEBUG(f"Excel写入完成！保存在{INIReader('EXCEL','excelpath')}")
    print(f"Excel写入完成！保存在{INIReader('EXCEL','excelpath')}")


if __name__ == '__main__':
    main()